package score_management_system;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

/*
1)程序启动后，品示菜单列表如下
        -成绩管理系统-
   显示成绩(1)//查看全班每位同学各科成绩
   添加成绩(2) //添加每一位同学的姓名学号和各科成绩信息
   修改成绩(3)//修改某位同学的课程成绩
   退出系统(4)//程序退出
   请输入对应的操作序号 (括号内的数字) 进行操作。
* */

public class Utils {

    // 要求10个学生，ArrayList的初始容量如果没有指定默认为10，虽然超过这个容量会自己动态扩容不能限定死最大为10个学生，但是用都用了随便了。
    // 如果追求完全符合需求这里可以用数组，类型为Student，指定容量为10
    List<Student> stuList = new ArrayList<>();
    Scanner scanner = new Scanner(System.in);
    public void initial(){
        while (true){
            try{
                System.out.println("------------成绩管理系统------------");
                System.out.println("显示成绩(1)       ");
                System.out.println("添加成绩(2)       ");
                System.out.println("修改成绩(3)       ");
                System.out.println("退出系统(4)       ");
                System.out.println("退出系统(4)       ");
                System.out.println("----------------------------------");
                System.out.println(" ");
                System.out.print("请输入对应的操作序号 (括号内的数字) 进行操作:");
                System.out.println(" ");
                int input = scanner.nextInt();
                if (input == 1){
                    System.out.println("学生成绩如下：");
                    showAllStudent();
                }else if (input == 2) {
                    addStudent();
                }else if (input == 3){
                    updateStudentInfo();
                }else if (input == 4){
                    System.out.println("程序退出!");
                    break;
                }else {
                    System.out.println("您输入的字符不合法，请重新输入！");
                }
            }catch (Exception e){
                System.out.println("遇到了异常！看看输入是否合法！");
            }
        }
    }
    // 创建一个学生信息
    private Student createStudent(String name,int id,int chineseScore, int mathScore, int englishScore){
        return new Student(name,id,chineseScore,mathScore,englishScore);
    }

    private void addStudent(){
        try{
            System.out.print("请输入学生的姓名：");
            String name = scanner.next();
            System.out.print("请输入学生的学号：");
            int id = scanner.nextInt();
            System.out.print("请输入学生的语文成绩：");
            int chineseScore = scanner.nextInt();
            System.out.print("请输入学生的数学成绩：");
            int mathScore = scanner.nextInt();
            System.out.print("请输入学生的英语成绩：");
            int englishScore = scanner.nextInt();
            Student student = createStudent(name,id,chineseScore,mathScore,englishScore);
            stuList.add(student);
            System.out.println("添加成功！");
        }catch (Exception e){
            System.out.println("遇到了异常！看看输入是否合法！");
        }
    }

    private void showAllStudent(){

//        stuList.stream().forEach((Student student) -> {
//            System.out.println(student);
//        });

        stuList.forEach(System.out::println);
    }

    private void updateStudentInfo(){
        try{
            System.out.print("请选择要修改的学生学号：");
            int id = scanner.nextInt();

            System.out.print("请输入修改后学生的语文成绩：");
            int updateChineseScore = scanner.nextInt();
            System.out.print("请输入修改后学生的数学成绩：");
            int updateMathScore = scanner.nextInt();
            System.out.print("请输入修改后学生的英语成绩：");
            int updateEnglishScore = scanner.nextInt();
            for (Student student : stuList) {
                if (student.getId() == id){
                    student.setChineseScore(updateChineseScore);
                    student.setMathScore(updateMathScore);
                    student.setEnglishScore(updateEnglishScore);
                }
            }
            System.out.println(" ");
            System.out.println("修改成功！！");
        }catch (Exception e){
            System.out.println("遇到了异常！看看输入是否合法！");
        }
    }
}
